﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using System.Data;
using vudu.EnlaceDatos.SqlServer;
using System.Data.SqlClient;

namespace vudu.PaginasWeb.G5Profesor
{
    public partial class ConsultarMiProfesorUniversidad : System.Web.UI.Page
    {
        private Profesor _miProfesor;
        private List<Escuela> _misEscuelas = new List<Escuela>();
        private List<Materia> _misMaterias = new List<Materia>();
        private SqlServerProfesor _miConsulta = new SqlServerProfesor();
        private Universidad _miUniversidad;

        protected void Page_Load(object sender, EventArgs e)
        {
            inicioSesion();

            if (!IsPostBack)
            {
                if (pruebaConexion())
                {
                    tablaProfesores.DataSource = cargarTabla();
                    tablaProfesores.DataBind();

                    tablaEscuela.DataSource = cargarTablaEscuela();
                    tablaEscuela.DataBind();

                    tablaMateria.DataSource = cargarTablaMateria();
                    tablaMateria.DataBind();
                }

            }
        }


        protected void avisoError(int opcion)
        {
            switch (opcion)
            {
                case 1:
                    LabelError.Text = "Error en Conexión con Base de Datos";
                    break;
                case 2:
                    LabelError.Text = "Debe Seleccionar un Profesor";
                    break;
                case 3:
                    LabelError.Text = "No se Recibieron Datos";
                    break;
                case 4:
                    LabelError.Text = "Modificación Realizada Con Éxito";
                    break;
                case 5:
                    LabelError.Text = "Modificación Fallida. Verifique Los Datos e Intente Nuevamente, La Fecha debe tener el formato Mes/Dia/Año";
                    break;

            }

            if (opcion != 4)
            {
                LabelError.ForeColor = System.Drawing.Color.Red;
            }
            else
                LabelError.ForeColor = System.Drawing.Color.Green;
            LabelError.Visible = true;

        }

        protected void inicioSesion()
        {
            try
            {
                //OBJETO SESSION

                 string miRol = (string)Session["rol"];
                  if (miRol != "Universidad")
                      Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

                _miUniversidad = new Universidad();
                _miUniversidad = (Universidad)Session["Usuario"];
                nombreUniversidad.Text = _miUniversidad.Nombre;

                _miProfesor = new Profesor();
                _miProfesor = (Profesor)Session["aConsultar"];

            }
            catch (Exception)
            {
                _miUniversidad = new Universidad();
                _miUniversidad.IdUniv = 1;
                _miUniversidad = _miConsulta.ConsultarMiUniversidad(_miUniversidad.IdUniv.ToString());
                nombreUniversidad.Text = _miUniversidad.Nombre;
            }
            finally
            {
                //Miga Actual
                MigaActual.Text = "Consultar Profesor";
                _miProfesor = new Profesor();
                _miProfesor = (Profesor)Session["aConsultar"];

            }

        }

        protected bool pruebaConexion()
        {
            Conexion miConexion = new Conexion();
            bool error = true;
            try
            {
                miConexion.AbrirConexionBd();
                miConexion.CerrarConexionBd();
            }
            catch (Exception)
            {
                avisoError(1);
                error = false;
            }

            return error;
        }


        public DataTable cargarTabla()
        {
            DataTable miTabla = new DataTable();
            Profesor profesor = new Profesor();


            miTabla.Columns.Add("Cédula", typeof(string));
            miTabla.Columns.Add("Apellido", typeof(string));
            miTabla.Columns.Add("Nombre", typeof(string));
            miTabla.Columns.Add("Fecha Nacimiento", typeof(string));
            miTabla.Columns.Add("Teléfono", typeof(string));
            miTabla.Columns.Add("Email", typeof(string));
            miTabla.Columns.Add("Status", typeof(string));
            miTabla.Columns.Add("Tiempo Laboral", typeof(string));

            try
            {

                profesor = _miConsulta.ConsultarProfesor(_miProfesor.Cedula.ToString(), 2);

                miTabla.Rows.Add(profesor.Cedula, profesor.Apellido, profesor.Nombre, profesor.FechaNacimiento, profesor.Telefono, profesor.Email, profesor.Estatus, profesor.TiempoLaboral);
                

                return miTabla;
            }
            catch (Exception)
            {
                avisoError(1);
                return null;
            }
        }

        public DataTable cargarTablaEscuela()
        {
            DataTable miTabla = new DataTable();
            
            miTabla.Columns.Add("Escuelas Asignadas", typeof(string));

            _misEscuelas = new List<Escuela>();
            _misEscuelas = _miConsulta.ConsultarMisEscuelas(_miProfesor);

            try
            {
                foreach (Escuela esc in _misEscuelas)
                {
                    miTabla.Rows.Add(esc.NombreEscuela);
                }

                return miTabla;
            }
            catch (Exception)
            {
                return null;
            }
        }

        public DataTable cargarTablaMateria()
        {
            DataTable miTabla = new DataTable();

            miTabla.Columns.Add("Materias Asignadas", typeof(string));

            _misMaterias = new List<Materia>();
            _misMaterias = _miConsulta.ConsultarMisMaterias(_miProfesor);

            try
            {
                foreach (Materia mat in _misMaterias)
                {
                    miTabla.Rows.Add(mat.Nombre);
                }

                return miTabla;
            }
            catch (Exception)
            {
                return null;
            }
        }

        protected void BotonRegresar_Click(object sender, EventArgs e)
        {
            Response.Redirect("ConsultarProfesorUniversidad.aspx");
        }

    }
}